Sequential Query Language (SQL) is a very powerful and popular query language used in various Database Management Systems. SQL, although named as a query language, is often used to design applications in the form of scripts. For example, SQL applications facilitate access to and manipulation of data in large, relational, database management systems, such as Oracle™, Sybase™, Informix™, Microsoft SQL Server™, Microsoft Access™, and other customized database interfaces. Each variation offers different capabilities, allowing users to select the variation best suited for them and their particular applications.
Multiple scripts may be linked to operate like application programs and may include embedded program builds to enhance functionalities of the scripts. Program builds are short program segments in other programming languages, such as an executable application in machine language or a batch file, that can be linked to scripts to create quite powerful database applications. For example, a user may want to transfer some contact information from a specific-use database such as the address book of Microsoft Outlook™ to another address book on a personal digital assistant (PDA). A script may be executed to export some portion of data from the address book of Microsoft Outlook™, essentially writing the data to a text file and then, the script may call an executable program to convert the text file into a format that can be imported by the address book software on the PDA.
SQL is a powerful interface between the user and database management systems. Typical applications of SQL include management and manipulation of large amount of data by relational databases. Each data manipulation typically corresponds to a modification to data in the database that can be performed by one or more manual steps or lines of the script (SQL statements). Generally, when users find that certain combinations of manual steps are performed repeatedly or that a large number of coordinated data manipulations must be implemented in a particular order to accomplish their goal, the users may economize on time, improve efficiency, and reduce the occurrence of errors by writing scripts to manipulate the data.
As an Illustration, applications such as census databases require the generation of millions of data tables. These data tables also require periodic updates. More specifically, census databases require multiple tables for even the smallest geographic region to describe the demographics of that region. In turn, these regional databases are combined and manipulated to arrive at sub-regional, regional, and eventually characteristics of the population for the entire nation. Each such table may represent different characteristics corresponding to the geographic region under consideration. Further, these census tables need to be updated at different time intervals with estimated values of the parameters.
Similarly, corporate data may contain data corresponding to employees, corporate subsidiaries, products, marketing and so on that may consist of many tables and views corresponding to various parameters. Again, these tables and views need continuous updating.
SQL command line processors typically execute lines of SQL scripts sequentially and do not permit rectification of errors in the SQL command lines, nor the identification of error causing command lines. Often times the developers recognize harmless error messages and ignore further rectification of the script for various reasons including inability of the processor to suppress these errors. The script users, however, become concerned and suspect that the script may not be performing its intended functions.
Errors may occasionally result in command lines designed to create tables, views, and other parameters, for example, when corresponding items may already exist. Under such circumstances execution of the script may halt, or may give one or more error messages and continue script execution, possibly carrying one or more errors in the results of executing the script. The errors are generally difficult to identify, especially when the scripts are large and/or complex. Programmers spend a significant amount of time diagnosing these errors, which adds to cost and efficiency of the operations. Therefore, it would be desirable to add ability to locate and diagnose errors in the scripts. It would be even better if the errors could be corrected automatically and the scripts continue to run correctly.